package com.hengxing.controller;

import com.hengxing.domain.User;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

//@Controller
//@RequestMapping("/user")
//public class UserController {
//    //设置请求路径映射
//    @RequestMapping("/save")
//    @ResponseBody //响应体
//    public String save (String name,int age) {
//        System.out.println("参数name=====>" + name);
//        System.out.println("参数age======>" + age);
//        System.out.println("save .......");
//        return "{'info':'springmvc user save...'}";
//    }
//   /*
//     参数名不一致传递,请求参数和形参不一致时
//    */
//    @RequestMapping("/difsave")
//    @ResponseBody //响应体
//    public String difsave (@RequestParam("name") String username, int age) {
//        System.out.println("参数name=====>" + username);
//        System.out.println("参数age======>" + age);
//        System.out.println("save .......");
//        return "{'info':'springmvc user difsave...'}";
//    }
//    /**
//     * 传递pojo参数User
//     */
//    @RequestMapping("/entityPojo")
//    @ResponseBody
//    public String getPojo(User user) {
//        System.out.println("pojo实体参数======>" + user);
//        return "{'info':'springmvc pojo params...'}";
//    }
//
//    /**
//     * 传递pojo参数嵌套User
//     */
//    @RequestMapping("/entityContainerPojo")
//    @ResponseBody
//    public String getContainerPojo(User user) {
//        System.out.println("pojo实体参数嵌套======>" + user);
//        return "{'info':'springmvc entityContainerPojo  params...'}";
//    }
//    /**
//     * 传递pojo参数数组
//     */
//    @RequestMapping("/habbity")
//    @ResponseBody
//    public String getHabbity(String[] likes) {
//        System.out.println("pojo实体参数数组======>" + Arrays.toString(likes));
//        return "{'info':'springmvc habbity  params...'}";
//    }
//
//    /**
//     * 参数集合
//     */
//    @RequestMapping("/habbityList")
//    @ResponseBody
//    public String getHabbity(@RequestParam List<String> likes) {
//        System.out.println("参数集合======>" + likes);
//        return "{'info':'springmvc List  params...'}";
//    }
//
//
//    /**
//     * 传递爱好集合参数  json格式
//     */
//    @RequestMapping("/paramsjson")
//    @ResponseBody
//    public String getJsonListData(@RequestBody  List<String> likes) {
//        System.out.println("json参数======>" + likes);
//        return "{'info':'springmvc json  params...'}";
//    }
//
//    /**
//     * pojo参数  json格式
//     */
//    @RequestMapping("/pojojson")
//    @ResponseBody
//    public String getPojoJsonData(@RequestBody User user) {
//        System.out.println("json pojo参数======>" + user);
//        return "{'info':'springmvc jsonpojo  params...'}";
//    }
//
//    /**
//     * 集合参数  json格式
//     */
//    @RequestMapping("/pojoListjson")
//    @ResponseBody
//    public String getUserListData(@RequestBody List<User> users) {
//        System.out.println("json参数======>" + users);
//        return "{'info':'springmvc pojoListjson  params...'}";
//    }
//
//    /*
//     * 日期格式
//     */
//    @RequestMapping("/date")
//    @ResponseBody
//    public String getDate(@DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
//        System.out.println("date日期参数======>" + date);
//        return "{'info':'springmvc date  params...'}";
//    }
//
//   //响应页面
//    @RequestMapping("/tojunmppage")
//    @ResponseBody
//    public String toJumpPage() {
//        System.out.println("跳转页面");
//        return "index.jsp";
//    }
//
//    //响应文本数据
//    @RequestMapping("/tojunmptext")
//    @ResponseBody
//    public String toJumpText() {
//        System.out.println("响应文本数据");
//        return "response text";
//    }
//
//    //响应POJO对象
//    @RequestMapping("/tojunmppojo")
//    @ResponseBody
//    public User toJumpPojo() {
//        System.out.println("响应json对象");
//        User user = new User();
//        user.setName("itls");
//        user.setAge(18);
//        return user;
//    }
//
//    //响应LIST集合
//    @RequestMapping("/tojunmplist")
//    @ResponseBody
//    public List<User> toJumpList() {
//        System.out.println("响应LIST JSON");
//        User user = new User();
//        user.setName("itls");
//        user.setAge(18);
//
//        User user1 = new User();
//        user1.setName("itls22");
//        user1.setAge(28);
//        List<User> list = new ArrayList<>();
//        list.add(user);
//        list.add(user1);
//        return list;
//    }
//
//    //设置请求路径映射
//    @RequestMapping(value = "/users",method = RequestMethod.POST)
//    @ResponseBody //响应体
//    public String save () {
//        System.out.println("restful save .......");
//        return "{'info':'springmvc restful save...'}";
//    }
//
//    @RequestMapping(value = "/users/{Id}",method = RequestMethod.DELETE)
//    @ResponseBody //响应体
//    public String deleteUser (@PathVariable Integer Id) {
//        System.out.println("restful delete id ......." + Id);
//        return "{'info':'springmvc restful delete id...'}";
//    }
//
//    @RequestMapping(value = "/users",method = RequestMethod.PUT)
//    @ResponseBody
//    public String updata(@RequestBody User user) {
//        System.out.println("restful updata......." + user);
//        return "{'info':'springmvc restful updata ...'}";
//    }
//
//    @RequestMapping(value = "/users/{Id}",method = RequestMethod.GET)
//    @ResponseBody //响应体
//    public String searchUser (@PathVariable Integer Id) {
//        System.out.println("restful search id ......." + Id);
//        return "{'info':'springmvc search  id...'}";
//    }
//
//    @RequestMapping(value = "/users",method = RequestMethod.GET)
//    @ResponseBody //响应体
//    public String searchAllUser () {
//        System.out.println("restful search all ......." );
//        return "{'info':'springmvc search  all...'}";
//    }
//
//}

//@Controller
//@ResponseBody
@RestController
@RequestMapping("/user")
public class UserController {
    //设置请求路径映射
    @PostMapping("/users")
    public String save () {
        System.out.println("restful save .......");
        return "{'info':'springmvc restful save...'}";
    }

    @DeleteMapping("/users/{Id}")
    public String deleteUser (@PathVariable Integer Id) {
        System.out.println("restful delete Id ......." + Id);
        return "{'info':'springmvc restful delete Id...'}";
    }

    @PutMapping("/users")
    public String updata(@RequestBody User user) {
        System.out.println("restful updata......." + user);
        return "{'info':'springmvc restful updata ...'}";
    }

    @GetMapping("/users/{Id}")
    public String searchUser (@PathVariable Integer Id) {
        System.out.println("restful search id ......." + Id);
        return "{'info':'springmvc search  id...'}";
    }

    @GetMapping("/users")
    public String searchAllUser () {
        System.out.println("restful search all ......." );
        return "{'info':'springmvc search  all...'}";
    }

}
